Portable computing devices, like mobile phones, are becoming increasingly more powerful and functional. For example, these devices include cameras, video capabilities, television tuners, audio recording and playback capabilities, etc. Further, since these devices are also communication devices, they also provide network computing services, like access to the Internet, synchronization of data with other devices, etc.
Despite the increasing functional capabilities and increases in computing power, there is still significant strain on the computing power of a small, hand held device. As such, there is a need for enhanced architectures and computing methods that support the vast variety of functions becoming available while making the best use of the computing resources on the device.
One major drain on the computing resources of a mobile phone, for example, is multimedia signal processing. Examples of applications include capturing and sending photos, playing music, playing video, etc. One particular application is associating various actions with multimedia content, such as linking a photo of a product in a catalog or magazine to a web site providing more information or purchase opportunities. Another example is linking a picture of musician or advertisement to an action of downloading a related ring tone to a phone or downloading related music in streaming mode or file format to a mobile phone handset. Implementations of this application are described in WO00/70585 and U.S. Pat. No. 6,505,160, which are hereby incorporated by reference.
These types of applications present major challenges for system developers:
1. how can these applications be implemented in software that runs on the phone hand set?
2. can these applications be implemented to run efficiently on a handset?
3. do these applications have unique hardware or software requirements that are not currently available on the handset alone?
4. can the application be widely deployed across handsets with different computing platforms, operating systems, and processors? (e.g., some handsets only execute programs written Java, yet the application may not run efficiently in Java).
In the network computing world, distributed computing schemes have been developed to take complicated software tasks, break them into modules and distribute execution of these modules across networked and/or parallel processors. Because of the unique architecture of the mobile phone handset, these schemes may not directly translate to the mobile phone computing architectures now available. As such, there is a need for new computing schemes and new distributed computing architectures for this environment.
The invention provides a reader for content identification and related content identification methods for mobile computing devices such as cellular telephone handset. One aspect of the invention is a reader including a reader library that reads device capabilities and business model parameters in the device, and in response, selects an appropriate configuration of reader modules for identifying a content item. The reader modules each perform a function used in identifying a content item. The modules are selected so that the resources available on the device and in remote devices are used optimally, depending on available computing resources on the device and network bandwidth.
Additional aspects of the invention are methods for identifying a content item captured from a mobile telephone handset, as well as methods for using combinations of signal filtering, watermark detection and fingerprinting to identify content using a combination of handset processing and server processing.
One example of a reader module is a fast watermark detection module that quickly detects the presence of a watermark, enabling resources to be focused on portions of content that are most likely going to lead to successful content identification. A watermark signal structure for fast watermark detection is comprised of a dense array of impulse functions in a form of a circle in a Fourier magnitude domain, and the impulse functions have pseudorandom phase. Alternative structures are possible.
Further features will become apparent with reference to the following detailed description and accompanying drawings.